using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Srvtools;

namespace cLimAdj
{
    public partial class Form1 : InfoForm
    {
        public Form1()
        {
            InitializeComponent();
        }
        ////////////
        public string GetToday()
        {
            return string.Format("{0:yyyyMMdd}", DateTime.Today);
        }

        public string GetNowTime()
        {
            return string.Format("{0:hhmmss}", DateTime.Now);
        }

        public string GetUser()
        {
            return CliUtils.fLoginUser;
        }

        private void ibsMaster_CurrentChanged(object sender, EventArgs e)
        {            
            string state = infoNavigator1.GetCurrentState();
            if (state == "Inserting" || state == "Editing" || state == "Initial" || state == "Browsed")
            {
                //修改時間顯示
                string UPDATE_TIME = ((DataRowView)ibsMaster.Current)["UPDATE_TIME"].ToString();
                if (UPDATE_TIME.Length == 6)
                 infoTextBox5.Text = Convert.ToDateTime(UPDATE_TIME.Substring(0, 2) + ":" + UPDATE_TIME.Substring(2, 2) + ":" + UPDATE_TIME.Substring(4, 2)).ToLongTimeString(); 
                else if (UPDATE_TIME.Length == 0)
                 infoTextBox5.Text = ""; 


                //建檔時間顯示
                string CREATE_TIME = ((DataRowView)ibsMaster.Current)["CREATE_TIME"].ToString();
                if (CREATE_TIME.Length == 6)
                 infoTextBox3.Text = Convert.ToDateTime(CREATE_TIME.Substring(0, 2) + ":" + CREATE_TIME.Substring(2, 2) + ":" + CREATE_TIME.Substring(4, 2)).ToLongTimeString(); 
                else if (CREATE_TIME.Length == 0)
                 infoTextBox3.Text = ""; 
            }
        }

        private void ibsMaster_AfterEdit(object sender, EventArgs e)
        {
            //以string儲存  
            ((DataRowView)ibsMaster.Current)["UPDATE_USER"] = CliUtils.fLoginUser;            
            ((DataRowView)ibsMaster.Current)["UPDATE_TIME"] = string.Format("{0:hhmmss}", DateTime.Now); 
        }

        private void ibsMaster_AddingNew(object sender, AddingNewEventArgs e)
        {
            //在新增就顯示建檔時間         
            infoTextBox3.Text = DateTime.Now.ToLongTimeString();
        }

        private void bindingNavigatorEditItem_Click(object sender, EventArgs e)
        {
            //以string儲存,在按下修改時    
            ((DataRowView)ibsMaster.Current)["UPDATE_USER"] = CliUtils.fLoginUser;            
            ((DataRowView)ibsMaster.Current)["UPDATE_TIME"] = string.Format("{0:hhmmss}", DateTime.Now);
        }

        private void infoDataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
            if ((infoNavigator1.GetCurrentState() == "Inserting") || (infoNavigator1.GetCurrentState() == "Editing"))
            {
                float AM_AMT = 0 ;
                //計算實售金額＝數量*售價 
                string Qty = infoDataGridView1.Columns[e.ColumnIndex].DataPropertyName.ToString();
                if (Qty == "QT_QTY")               
                {
                    AM_AMT = float.Parse(((DataRowView)ibsDetail.Current)["PR_COST"].ToString());
                    AM_AMT = AM_AMT * float.Parse(((DataRowView)ibsDetail.Current)["QT_QTY"].ToString());
                    ((DataRowView)ibsDetail.Current)["AM_COST"] = AM_AMT.ToString();
                    ibsDetail.EndEdit();
                }
            }
        }

        public string GetWH()
        {
            return InfoRefValBox2.TextBoxSelectedValue;
        }

        private void InfoComboBox1_TextChanged(object sender, EventArgs e)
        {
            if (InfoComboBox1.Text == "BG" || InfoComboBox1.Text == "開帳")
            {
                Label01.Text = "開帳單號";
                Label11.Text = "開帳日期";
                tabPage1.Text = "開帳作業明細";
                this.Text = "開帳作業";
                this.nOVOUDataGridViewTextBoxColumn.HeaderText = "開帳單號";
                this.dTVOUDataGridViewTextBoxColumn.HeaderText = "開帳日期";

            }
            else
            {
                Label01.Text = "調整單號";
                Label11.Text = "調整日期";
                tabPage1.Text = "調整作業明細";
                this.Text = "調整作業";
                this.nOVOUDataGridViewTextBoxColumn.HeaderText = "調整單號";
                this.dTVOUDataGridViewTextBoxColumn.HeaderText = "調整日期";
 
            }
        }

        private void infoDataGridView2_Click(object sender, EventArgs e)
        {
            //重新設定明細欄位的ReadOnly屬性(因為使用AutoDisableControl會造成回歸預設值False)
            this.infoDataGridView2.ReadOnly = true;
        }

        private void infoDataGridView1_Click(object sender, EventArgs e)
        {            
            //重新設定明細欄位的ReadOnly屬性(因為使用AutoDisableControl會造成回歸預設值False)
            this.nOVOUDataGridViewTextBoxColumn1.ReadOnly = true;
            this.cNSEQDataGridViewTextBoxColumn.ReadOnly = true;
            this.nMITEMDataGridViewTextBoxColumn.ReadOnly = true;          
            this.pRCOSTDataGridViewTextBoxColumn.ReadOnly = true;
            this.aMCOSTDataGridViewTextBoxColumn.ReadOnly = true;

        }

        private void Form1_Load(object sender, EventArgs e)
        {
            //隱藏鍵值欄位
            this.nOVOUDataGridViewTextBoxColumn.Visible = false;
            this.nOVOUDataGridViewTextBoxColumn1.Visible = false;
        }

        private void ibsDetail_BeforeEdit(object sender, EventArgs e)
        {
            //記錄Detail的修改時間日期
            ((DataRowView)ibsDetail.Current)["UPDATE_USER"] = CliUtils.fLoginUser;
            ((DataRowView)ibsDetail.Current)["UPDATE_DATE"] = string.Format("{0:yyyyMMdd}", DateTime.Now.Date);
            ((DataRowView)ibsDetail.Current)["UPDATE_TIME"] = string.Format("{0:hhmmss}", DateTime.Now);
        }

        private void infoNavigator1_StateChanged(object sender, InfoNavigatorStateChangedEventArgs e)
        {
            //將DateTimePicker設為不可改
            this.InfoDateTimePicker0.Enabled = false;
            this.InfoDateTimePicker11.Enabled = false;
            
        }
       

        private void bindingNavigatorAddNewItem_MouseUp(object sender, MouseEventArgs e)
        {
            //將DateTimePicker設為不可改
            this.InfoDateTimePicker0.Enabled = false;
            this.InfoDateTimePicker11.Enabled = false;
        }

        public bool CheckDetail(object Value)
        {
            if (ibsDetail.List.Count == 0)
                return false;
            else
                return true;
        }

    }
}

